/**
 * Inferfaz que define el comportamiento de la cola que trabaja bajo el patron Worker.
 * 
 * @author HPCIII_Team2013
 */

package cl.ucn.hpc.wordCounter;
import cl.ucn.hpc.wordCounter.IRunnableTaskWordCounter;

public interface IQueueWordProcessing {
	/**
	 * Informa si la cola esta activa.
	 * 
	 * @return Estado de la cola: 'true' si esta activa, 'false' si no.
	 */
	public boolean isShutDown();
	
	/**
	 * Ingresa un elemento a la cola.
	 * 
	 * @param r Nueva tarea a agregar.
	 */
	public void put(IRunnableTaskWordCounter r);
	
	/**
	 * Entrega y saca de la cola el primer elemento.
	 * 
	 * @return El primer elemento de la cola.
	 * @throws InterruptedException Si se interrumpe al hilo durante su espera.
	 */
	IRunnableTaskWordCounter take() throws InterruptedException;
	
}
